Skip to content

Conversation

@jmcphers
Copy link
Collaborator

This change adds developer support for producing dev and release builds on Windows ARM. It does not actually add Windows ARM release builds, as those require infrastructure we do not yet have.

Rough outline of changes:

  • Update installation scripts to install native Windows ARM binaries for Kallichore and Ark (requires version bumps as these repositories only produced x64 versions until very recently)
  • Update R kernel logic to ship both the x64 and ARM versions of Ark and pair them with whichever version of R is used at runtime
  • Add R installation detection for Windows ARM versions of R, which typically live in R-aarch64
  • Add more build serialization to work around EMFILE issues on Windows ARM builder
  • Force installation of x64 Copilot SDK on Windows ARM (Copilot doesn't provide a native ARM binary which is fine as the x64 version works in emulation mode)
  • Remove ZeroMQ from Copilot Chat as it blocks building on Windows ARM due to missing zeromq native prebuilds (yes it's always ZeroMQ) and it is not a runtime dependency
  • Skip bundling Quarto for now as it doesn't have a native Windows ARM package; deno is missing ARM builds, and so is Pandoc.

Progress towards #5254.

@github-actions
Copy link

github-actions bot commented Oct 16, 2025

E2E Tests 🚀
This PR will run tests tagged with: @:critical

readme  valid tags

@jmcphers jmcphers requested a review from jennybc October 16, 2025 22:51
@jmcphers jmcphers removed the request for review from jennybc October 23, 2025 15:23
@samclark2015 samclark2015 self-requested a review October 23, 2025 21:08
samclark2015
samclark2015 previously approved these changes Oct 24, 2025
Copy link
Contributor

@samclark2015 samclark2015 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! I was able to get a development version going on Windows on Arm (couple bumps, which were sorted).

Tested:

  • Detects both x64 and Arm R installs ✅
  • Confirmed expected processes (Positron, Air, Ark, Kallichore) are running as Arm processes ✅
  • Confirmed spawning x64 R spawns x64 Ark ✅
  • Confirmed Copilot functions as expected ✅

Of note: Python works as expected using x64 binaries, but Arm binaries throws an error on launching a session:

Traceback (most recent call last):
  File "c:\Users\Sam\Documents\positron\extensions\positron-python\python_files\posit\positron_language_server.py", line 10, in <module>
    from positron.positron_ipkernel import (
    ...<3 lines>...
    )
  File "c:\Users\Sam\Documents\positron\extensions\positron-python\python_files\posit\positron\positron_ipkernel.py", line 18, in <module>
    import psutil
  File "c:\Users\Sam\Documents\positron\extensions\positron-python\python_files\lib\ipykernel\arm64\cp3\psutil\__init__.py", line 100, in <module>
    from . import _pswindows as _psplatform
  File "c:\Users\Sam\Documents\positron\extensions\positron-python\python_files\lib\ipykernel\arm64\cp3\psutil\_pswindows.py", line 30, in <module>
    from ._psutil_windows import ABOVE_NORMAL_PRIORITY_CLASS
ImportError: DLL load failed while importing _psutil_windows: %1 is not a valid Win32 application.

juliasilge
juliasilge previously approved these changes Oct 24, 2025
Copy link
Contributor

@juliasilge juliasilge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also got this to work via Parallels, although it was a JOURNEY:

Image

I am able to run ARM pyenv interpreters, but so far it's not finding my R installations there. I think we are in a good enough place to merge this and can move forward from here.

@jmcphers jmcphers dismissed stale reviews from juliasilge and samclark2015 via 5e060f5 October 24, 2025 23:18
@jmcphers jmcphers merged commit b367714 into main Oct 27, 2025
13 checks passed
@jmcphers jmcphers deleted the feature/windows-arm64 branch October 27, 2025 16:11
@github-actions github-actions bot locked and limited conversation to collaborators Oct 27, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants